Skip to content

fix: replace torch.tensor copy-constructs with as_tensor - #576

Open
srivarra wants to merge 4 commits into
mainfrom
torch-copy-tensors
Open

fix: replace torch.tensor copy-constructs with as_tensor#576
srivarra wants to merge 4 commits into
mainfrom
torch-copy-tensors

Conversation

@srivarra

Copy link
Copy Markdown
Contributor

clears up some warnings, and removes the double copy if you do torch.tensor(x).clone() and stops the autograd graph from detaching with torch.tensor().

clears up some warnings, and removes the double copy if you do torch.tensor(x).clone() and stops the autograd graph from detaching with torch.tensor()

Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
torch.tensor(np.meshgrid(...)) get list of 2 ndarrays. torch walk it as
generic python sequence, one scalar read+store per element. warn
"Creating a tensor from a list of numpy.ndarrays is extremely slow".

np.stack first = 2 bulk memcpy, then as_tensor wrap zero-copy.

256x256:   10104 us -> 88 us
2048x2048: 682144 us -> 60850 us

output bit-identical, dtype stay int64. last remaining copy warning in
repo, so all paths now clean.

Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
@srivarra srivarra linked an issue Aug 12, 2026 that may be closed by this pull request
assert on torch warning substring. couple suite to vendor message text,
which already drift across versions ("clone().detach()" in torch 2.0 vs
"detach().clone()" in 2.10).

also redundant. only way to bring warning back is torch.tensor(tensor),
which detach autograd too, so test_gradients_reach_copied_outputs catch
same regression.

keep test_estimate_copying (copy contract, sibling of existing
test_copying) and test_gradients_reach_copied_outputs (catch silent
detach; warning itself invisible in prod since cli/main.py set
PYTHONWARNINGS=ignore::UserWarning).

Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
existing test_copying already cover copy contract for stokes_after_adr
and mueller_from_stokes. estimate_* variant add no new coverage.

Signed-off-by: Sricharan Reddy Varra <sricharan.varra@biohub.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Torch warning about copying tensors

1 participant